windows批处理编程
1> 运算操作
1.1 算数运算
1.1.1 命令模式
set /a 1+2
1.1.2 文本模式
@echo off
set /a var = 10 * (10-6)
echo %var%
pause
1.2 重定向运算
1.2.1 输出重定向
echo "hello world" > a.txt # 覆盖输出
echo "hello world" > a.txt # 追加输出
type a.txt # 查看输出
1.3 多命令运算
1.3.1 &&
与运算,具有短路特性,第一个命令错误不会执行第二个命令
ipconfig && net user
1.3.2 ||
或运算,具有短路特性,第一个命令正确则不会执行第二个命令
ifconfig || net user
1.4 管道运算
dir | find ".txt"
netstat -an # 查看网络端口
netstat -an | find "ESTABLISHED"
2> 基本命令
2.1 命令格式
命令格式: 命令 子命令 参数 操作 选项
帮助信息查看: /? 或 /help
net user /?
net user /help
2.2 参数传递
.bat文件接受参数使用%num
net user %1 %2 /add
注释符: rem comment
2.3 炫酷命令提示符
2.3.1 颜色命令
color 0a # 第一个为背景颜色,第二个为前景颜色
2.3.2 标题命令
title 'hack'
2.4 时间相关命令
2.4.1 date
date /t
2.4.2 time
time /t
2.5 启动命令
start test.bat
2.6 调用其他bat文件
call test.bat
2.7 任务列表查看命令
tasklist # 显示进程列表
tasklist /S 192.168.1.10 /U administartor /P admin1234
taklist /FI "status eq running" # 使用筛选器
2.8 任务关闭命令
taskkill /im notepad.exe # 关闭记事本
taskkill /pid 15236 /t # 关闭进程及其子进程
2.9 文件夹结构查看命令
tree
2.10 关机命令
shutdown /s /t 1200
2.11 计划任务命令
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc monthly /d 15 /m MAY,JUN /st 15:00:00 # 计划 MyApp 程序在五月 15 日和六月 15 日的 3:00 PM (15:00) 运行
3> 文件夹和文件命令
命令 | 说明 | 示例 |
---|---|---|
dir | 浏览目录 | dir -a |
mkdir 或md | 新建目录 | md a/b/test |
rmdir 或 rd | 删除目录 | rd test |
cd | 切换目录 | cd C:/360 |
ren | 目录重命名 | ren test test_new |
copy | 目录拷贝 | copy test test_new |
del | 文件删除 | del abc.txt |
move | 文件剪切命令 | move abc.text abc_new.txt |
4> 网络相关命令
4.1 用户操作命令
net user
net user admin /delete # 删除用户
net user admin /add # 添加用户
4.2 用户组操作命令
net localgroup administrators admin /add # 将admin用户添加到管理员用户组中
net user admin # 查看admin用户
4.3 网络连通检测命令
ping www.baidu.com
4.4 路由信息查看
tracert 61.135.169.125
4.5 网络适配器
ipconfig /all
ipconfig /renew # 重新获取ip地址
4.6 ARP信息
arp -a
5> 条件判断结构
@echo off
rem 判断字符串是否是规定的字符串
set v=hello
if %v%==hello (echo ok) else (echo no)
pause>nul
@echo off
rem 判断文件是否存在
if exist 1.bat(echo ok) esle (echo no)
pause
@echo off
if exist abe.txt(
echo file is find!
)else(
echo file is not found
)
pause
6> 循环结构
6.1 遍历目录
@echo off
rem 遍历文件夹
for /d %%a in (*) do if %%a==test rd %%a
for /d %%a in (*) do echo %%a
pause
6.2 遍历目录和子目录下的文件
@echo off
for /r "C:\CH067" %%v in (*.py) do echo %%v
echo delete all *.py
for /r "C:\CH067" %%v in (*.py) do del %%v
pause
6.3 遍历数字
@echo off
for /L %%v in (1, 3, 20) do echo ping %1.%%v
pause
6.4 遍历文件内容
@echo off
for /f %%v in (3.bat) do echo %%v
pause
7> 目录迭代
@echo off
pause
cd c:/loc
:loop
md virs
cd vies
goto loop
pause> nul
exit